{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# IQ Files & SigMF"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "While it’s possible to store the complex numbers in a text file or csv file, we prefer to save them in what’s called a “binary file” to save space. At high sample rates your signal recordings could easily be multiple GB, and we want to be as memory efficient as possible.\n",
    "\n",
    "In Python, the default complex type is np.complex128, which uses two 64-bit floats per sample. But in DSP/SDR, we tend to use 32-bit floats instead because the ADCs on our SDRs don’t have that much precision to warrant 64-bit floats. In Python we will use np.complex64, which uses two 32-bit floats. When you are simply processing a signal in Python it doesn’t really matter, but when you go to save the 1d array to a file, you want to make sure it’s an array of np.complex64 first."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "In Python, and numpy specifically, we use the tofile() function to store a numpy array to a file. Here is a short example of creating a simple BPSK signal plus noise and saving it to a file in the same directory we ran our script from:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-1.01571119+0.01168553j  0.9768507 -0.07908536j -1.05376596-0.20570976j\n",
      " ...  1.10451155+0.03279887j  0.97773194-0.0285322j\n",
      "  0.87263944+0.00407851j]\n"
     ]
    },
    {
     "data": {
      "image/png": "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CyI0NFSUlpb66k/QBFfP8/Lly8Vnn30mysvLRXFxsXj00UdFRESEOHnypK/+BE344YcfzH0wAPHHP/5RlJSUiHPnzgkhhMjPzxf/8i//Yj7+7NmzIioqSvzmN78Rp0+fFqtWrRIhISFix44dvvoT/BqDlwDy+OOPCwB2//viiy/MxwAQ7733nvlno9EonnvuOdGrVy8RHh4u7r//fnHmzBnvN15Drl69KmbNmiW6desmoqOjxdy5c60CxIqKCqvzXlVVJfLy8kR8fLwIDw8Xt912m/jNb34jDAaDj/4C//X666+LtLQ0ERYWJu666y7x5Zdfmn937733iscff9zq+L/+9a+if//+IiwsTNxxxx3i008/9XKLtcmV8/zrX//afGyvXr3ElClTxNGjR33Qam354osvFPtj+dw+/vjj4t5777V7ztChQ0VYWJjo16+fVV9N1iQhhPDJkA8RERFRB3C1EREREWkKgxciIiLSFAYvREREpCkMXoiIiEhTGLwQERGRpjB4ISIiIk1h8EJERESawuCFiIiINIXBCxEREWkKgxciIiLSFAYvREREpCkMXoiIiEhT/n+Mb5LMXGnP6QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'numpy.complex128'>\n",
      "<class 'numpy.complex64'>\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "num_symbols = 10000\n",
    "\n",
    "# array of 1 and -1\n",
    "x_sym = np.random.randint(0, 2, num_symbols)*2-1 \n",
    "# AWGN with unity power\n",
    "n = (np.random.randn(num_symbols) + 1j*np.random.randn(num_symbols)) \\\n",
    "    /np.sqrt(2) \n",
    "\n",
    "r = x_sym + n * np.sqrt(0.01) # noise power of 0.01\n",
    "print(r)\n",
    "plt.plot(np.real(r), np.imag(r), '.')\n",
    "plt.grid(True)\n",
    "plt.show()\n",
    "print(type(r[0])) # Check data type.  Oops it's 128 not 64!\n",
    "r = r.astype(np.complex64) # Convert to 64\n",
    "print(type(r[0])) # Verify it's 64\n",
    "r.tofile('bpsk_in_noise.iq') # Save to file"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now examine the details of the file produced and check how many bytes it is. It should be num_symbols * 8 because we used np.complex64, which is 8 bytes per sample, 4 bytes per float (2 floats per sample).\n",
    "\n",
    "Using a new Python script, we can read in this file using np.fromfile(), like so:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-1.0157112 +0.01168553j  0.9768507 -0.07908536j -1.053766  -0.20570976j\n",
      " ...  1.1045115 +0.03279887j  0.97773194-0.0285322j\n",
      "  0.8726394 +0.00407851j]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGdCAYAAADaPpOnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABxuUlEQVR4nO3de3wUVZo//k91yBXIjQSSQEJCFAIKAQJiAKOMyM1ZAdkRgVkdFsERcXa+uANhdrywOpvgMvNyVFgV1HF+K8g43BwFlAUZLkHAECACQQ0J4dJBQkJHkpDE9Pn90VTTl6pOd9K36v68X6/ZNZ3q7pOi6/RT5zznOZIQQoCIiIhII3S+bgARERGRKxi8EBERkaYweCEiIiJNYfBCREREmsLghYiIiDSFwQsRERFpCoMXIiIi0hQGL0RERKQpXXzdAHczGo24dOkSunfvDkmSfN0cIiIicoIQAj/88ANSUlKg0zkeWwm44OXSpUtITU31dTOIiIioA86fP48+ffo4PCbggpfu3bsDMP3x0dHRPm6N77S2tuLzzz/HhAkTEBoa6uvmBDSea+/gefYOnmfv4Hm2V19fj9TUVPP3uCMBF7zIU0XR0dFBH7xERUUhOjqaF4aH8Vx7B8+zd/A8ewfPszpnUj6YsEtERESawuCFiIiINIXBCxEREWkKgxciIiLSFAYvREREpCkMXoiIiEhTGLwQERGRpjB4ISIiIk1h8EJERESawuCFiIiINIXBSwDRG5pQVF4DvaHJ100hIiLymIDb2yhYbThShWWbSmEUgE4CXp46CF193SgiIiIP4MhLANAbmsyBCwAYBfC7radwrdm37SIiovZx1Nx1HHkJABU1DebARWYUwJUb7e/MSUREvvNR8QX8busp86h5wcODMXNkmq+b5fc48hIAMhK6QmcTp+gkIDFCKD+BiIh87lozzIELYLrp/O2mrzkC4wQGLwEgOSYSBQ8PRohkimBCJAkvTx2E2HD3vD6HNImI3O/KDclu1LxNCFTWNPqmQRrCaaMAMXNkGvL6J6KyphHpCVFIiOqCbdtOdPp1bROBOaRJROQeiRECOglWAUyIJCE9Icp3jdIIjrwEkOSYSORm9kByTKRbXk8pEZhDmkRE7hEbbloZajlq/l8P3+m2PjyQceTFj+gNTaioaUBGQle/+PAqJQLLQ5r+0D4iIq37WU4fjBuYZB41Z9/qHAYvfsIfp2fkRGAOaRIRud+1ZuDLs7W4LSkauZk9fN0cTeG0kR/w1+kZpURgDmkSEXXeR8UX8OLREPzLe19hTOFubDhS5esmaQpHXvyAP0/P2CYC+7o9RERaY5sSoDc04XdbT0HAdGMo37Dm9U9kH+skBi9+wN+nZ5JjInlBERF1gFJKQGp8lN/esGoFp438AKdniIgCj1pKQNewELvCov50w6oFHHnxE56antEbbuCCweA3K5iIiIKFWkrA+domvDx1EP5jy0kISLxh7QAGL37E3dMzBy9L+H9/2Gu3gsnflmQTEQUipZQAAPjVhyV4eeogvDi8DbG3D0dISAhy+sb5ppEaxeAlQOkNN7DhrA7yNSMPV15rasWK7WV+tSSbiEiL2rsRlFMClm0shdHicaMw7Wn001QJn5ScYH/cAcx5CVDnrjaaM9llbUKg8GbgAvjPkmwiIq3ZcKQKYwp3Y/aaQw6XOs8cmYbXZg+ze9wogI+rdOyPO4jBS4Dq2yMKEqzHKnUABDcBIyLqFFdrc+X0jbNL0DX9bH+Dyf7YOQxeAlRyTARm9jOaL5gQScLSyVnMcCci6iRHtbmUKK0o/fcJt9vdYLI/dh5zXgKQ3tCE76rrMTBWYM+zebhoaDGvYIqNCsVvN32NNiGY4U5E1AGu1ubSG5qQGh+FTQtz0dhiRHpCFBKiuqDq2zL8tSIERsESGa5i8BJgLAsiSQhBaFoNZt+dYf49K+YSEXWOPJLizI3gW3vLUbi9DMIiKTc3swdaW1uR20tg4cPWN5iuCtbVowxeAojtPKyAhN9tPYVxA5OsPtSsmEtE1DnO3Ai+9Y9yFGwvM/9suQ1AQpTp6zc5JgJpCd071AZ/3NDXW5jzEkCU5mGNAkwAIyLygOSYSORm9lAMXPSGJqvAReaupFx/3dDXWxi8BBB5HtaSTgITwIiIvOzd/RWKj7urT3Y1aTjQMHgJMPPGZpgDGAkCL08d5JYpIr2hCUXlNUET1RMRdZTe0IR3VIKXpZOzHPbJan2t7eNKN6vBtFqJOS8BwjpRF3hiTF+kNpXjZzl93PrawTavSkTkKqVREQCYfVcqnszLVH2eWl+r9rhl0rBOApZMHhA0+YwceQkA9om6wLtF5zzy2sE2r0pE5Cq1Kfxn7r9d9Tlqfe3x83WqffDMkWlYMmkApJuPr9heplrpN9B4JXhZtWoV0tPTERERgVGjRuHw4cOqx65Zswb33HMP4uLiEBcXh/Hjxzs8ntQTda/ckJSf0MnXDqZ5VSIiVykVpSt4eLDDURG1vvZIZZ1qH6w3NGHFjjK7PeyC4ebS49NGGzZswOLFi/Hmm29i1KhRePXVVzFx4kScOXMGPXv2tDt+z549mDVrFkaPHo2IiAisWLECEyZMwMmTJ9G7d29PN1eTlAom6SQgMUJh3NINrx1M86pERB3hak0ttb52ZHocJMCqFq/cBzu6uQz06SOPj7z88Y9/xPz58zF37lwMGjQIb775JqKiovDuu+8qHv/BBx9g4cKFGDp0KLKysrB27VoYjUbs2rXL0031e2qJXMkxkZg+zDqwm5adjNjwzr+n7R1EsM2rEhF1lKOl1ErHWvW1AOaNTceXFbVWx0mAuSBeMCftenTkpaWlBcXFxVi2bJn5MZ1Oh/Hjx+PgwYNOvUZjYyNaW1sRHx+v+Pvm5mY0Nzebf66vrwcAtLa2orW1tROt9y8fFV/A77aeMidsvTx1EH6W0wd6ww2UVF3D5pKLVsdvOa5H9jCongO94QbOXW1E3x5RSI6JcPjeDw9NRu31G3jls2/N86rdw3RuSQYOBPI5DqTPmz/iefYOnmfvUDrPDw9NRm5GHP7y5Tm8e+Ac3t5nv2JJkoDcjDi0trYiIaoLXp46yOq74aWpA5EQ1UWT/36utFkSwnafYfe5dOkSevfujaKiIuTm5pofX7JkCf7xj3/g0KFD7b7GwoUL8dlnn+HkyZOIiLD/kn3xxRexfPlyu8fXrVuHqChtRp/Xmk35KokRArHhpp9fPBoCYbEDqQSBf0oz4u9VOqvHLS0a1IbbY+z/eQ9elrDhrOl5EgRm9jMit5f6x0Dt/V8c3uaW0R0iIjJR6m9t/eL2NnQLhdV3hOV3hlY1NjZi9uzZMBgMiI6OdnisXy+VLiwsxIcffog9e/YoBi4AsGzZMixevNj8c319PVJTUzFhwoR2/3h/9FHxBSy3GWHpFxcFcfQrq+MEJPy9KgRqIYec8/LAAw8gNDTU/LjecAP/7w97zc8TkPDXihAsfDhPdQTmy7O1iu+fOfRujMpQHhELJq2trdi5c6fduSb34nn2Dp5n71A7z0r9rSVJAt7/1tT3y98RswNkFFyeOXGGR4OXhIQEhISE4PLly1aPX758GUlJSQ6fu3LlShQWFuL//u//MGTIENXjwsPDER5uH2qGhoZq7sLTG5rMw3+AKXHrua2nsWlhrmJCrlIdAcA05/nS1IHoevmE3Xm4YDAorky6aGhR3V/jtqRoxUSyzF7RmjvHnqTFz5wW8Tx7B89z+9yxKaLteVbqb2U6CRACVquLntt62m7/Oq1y5fPm0YTdsLAw5OTkWCXbysm3ltNItl555RW89NJL2LFjB0aMGOHJJvqEWuKtWuZ4Y4vRbtnd0slZ9nUEAKyaPQz788ep5qN0JMFLadkft24nomC24UgVxhTuxuw1hzCmcLfb6qso9bfLJmdh/fy78adHh9qNtgdr6QqPTxstXrwYjz/+OEaMGIG77roLr776KhoaGjB37lwAwGOPPYbevXujoKAAALBixQo8//zzWLduHdLT01FdXQ0A6NatG7p16+bp5nqcbaXEpZOzMLh3DDISujpclpyb2cNu2V1sZKjdluwPDkkBoJ745MpW7pZcXfZHRKRljkZV1ArK5fVPdEvfqNbf6g1NLF1xk8eDl5kzZ+LKlSt4/vnnUV1djaFDh2LHjh3o1asXAKCqqgo63a0BoP/5n/9BS0sL/vmf/9nqdV544QW8+OKLnm6uRyl94Au2mXYdlUs+2wYWSyYPQEVNAwBT4GF5YXQ0oOjo82zfn4goELW3JYo36qso9bcdvfkMRF5J2F20aBEWLVqk+Ls9e/ZY/VxZWen5BvmI2n4XwK3IfX/+OOzPH4fKmkacuHANK7aXOdxTSC2g0Btu4FuDBL3hBtIS7OcRGYgQEdlzZlSlI8U79YYmFJ+rgxACI9LjkRDVsa9fjoKb+PVqo0CiNzTh6vVmh4m2cuSenhCFmus3sGJHmdUFlL+xFM0/tuGBQdbJWbbDm7fuGkKw+vRebqRIROQkZ0ZVXB0B2XCkCvkbS835KhKA308bhK4Wx7iS/MubTwYvXmG747N0M2PcVogk4cSFa5iz9kvFAEcAeH7rKbyw9RQKZyjvNrp0UpZd0NPeXKw7MuaJiAKB4nYrAKLCrNe3ODsCIo/kWHbpAsB/bDmFF4ebfm5vmorscVdpD1Pa8VkSplVByyZnWWWUL5k8wCrwUCMALNtYqrjbaOF2++e3CYH/O3VZcYWTpzLmiYi0yHa1DwAYAUxfXWTXPzpT/l8tXUDAVFhOb7ihumt0Z6itag0UHHnxMMUdnwHEdw3Hg0NS8NDQFHPk7ignxpYRUNxtVO3pz209CcA06pM/OQtP5mV6PGOeiEiLZo5MQ1ZSd0xbXWQeJe9o/6g0kgOYRuETIwSOVl1zOfm3vdFyZ0ZytD7izuDFw9pL7LKdu7Q9Vo79bYMSCcDI9DiHOTRKhLzCSQCD+8Q4vGi0/uEmIuqohpY2u+l9paDCsp8EYNdnyiM5+ZtKza8n57ycOFGKDX89YffejpJ/2wtMnLkpDYRpKgYvHuZKYpfasQCsPviysuofUPDwYCzbWAqji+1asb0Mm58erRpYBcKHm4ioo5xZUWSbzwjcTA2wGOEGbuXHHD1XByGAnPQ4tLb+iP/YorO7MdVJUPyOkFcrWSb+KgUm7SUcB8qIO4MXL3BlaZvasVlJ3TF1VZH5OIFbS6s3Pz3aangTVkcpb+4lTzstnZSFV3acsQuWAuHDTUTUUe3deCrlM8rkEe76xlaMuT3BPBLz4JBb/ee+M5cVN1+0DTz0hia8u78C7+yvUBxltx0NUkw4lmAOurxRo8YbGLx4SXtL22ynaGyPbWhps3tOmxCmSB7ArJGp+PDIeZsPpfqupADw8qenoZOAhfdlIjYqDCPT45CdGoei8hqnP9ycWiKiQOXoxrP4nH3Ooa1Ve8qxak+54uh13x5RULvBlG8W935zxWqkRYntaJDSNJUQwN5vrmDmyLQO1ajxRwxe/IAzUzRKHzhJAp5eV9Kp9zYK4I0vygHceu+8/olOfbg5tUREgU7pZnLDkSos3Vjq9Gu4OnrdJgSKK+ucClyUppjy+idaDQXJI/Xy+wdClV4ulfYxtflH2+VtyTGRWDopyxyjy7uLupNRmKaLvqqsxVKbZdy2H25n201EpBXOLC/WG5qQ70LgIrPdQPHc1UaojY7rANQ1tqgGLjoJeGOWaRNepRvGipoGhxs4zhyZhv3547B+/t2qr+HvOPLiBY6mVpydf9xwpAqF28usErU6Sq1Invy6z6w/Zi54N6RPrGKeTqDMmxIRAc6PJCsFBs7QSUDN9RvQG5qQHBOJvj2iIEEo5r08NDQFR8/Vqr5OwcOD8dPsFNX3cmZqSOtVejny4mFqReDkCL9rWAh0Np9dyw+Z3tCET05canf4UKYDsGhcpt1rWhrXP9GqAJMSowBe2XFGNcFYvjjU2k1EpBWujCRnJHRtJ5vwFrmPlG8Yn1l/zOp7IKeHcq++5dglbD6mV/zd5oWj2x0psS20p9WpIUc48uJBahfEtaZWqw0Xpw/rjS0ll27tJD3JtJP0x8cuOVVxVyYBKLi5bUBUmA6vfPYNlIYl93xzBZsXjsb5WlMA9eHh84pLrR2NpATKvCkRkSsjyckxkSicMdipfJRNC3Nxoa4Ji9aVWI2a528shSQBRuH8+IEOpv49OzXOqeMtk42jwnRoaGkzj/oEAgYvHqR2QRRuL7Oq2ril5BI2Lcw1BRNna6ymh1yx9vEc3D8wCXpDE1Z+/i1Ul0kL4NMT1Vi7/6y5PsG0oSnYeuyS1fu2N5LC3U2JKBC4ugJHrsC76/T3qKpttOs7JZhqtWSnxpmK3dk8X8D1nMWlU7Jczk1JjonE3m+uBOTCCgYvHqS2wZdSQGMZTHTU/L8UY+nkrHar7uoArNl31nxBCZiGKSffmYTPT152aSRF6/OmREQd2SXasjidXQV0CYgKC8Hx83WobWhRPMZVr2w/g4eyU1zqbwOlIJ0SBi8epHRBLJlkv/miDuhQ4GK7dYBRLv3fjhHpcThcWWf3+I6vq7Hl6dFobDGa7ziKymtYw4WIAp6ru0QrFaeTyQsfZBJuBTk6wOWK6ID1aiFna2sF8sIKBi8epnRBxEaFWgU088am4+19FS69rg7AE/dkuPw8AIqBC2C6sM7XNuGn2Sms4UJEQceZkWRXNtCVCZj60WfG3Ybs1Bg88X6xyyMxIZKEExevYc7aL53ulwOlIJ0SBi9eYHtB2AY0ALBWpfSzmv+cdgfuH9jL5ee151cfluDitSar0aFAGmokIuoMtV2i22MUwGu7v+vQFJJOgmnUfrt6v6xUkiOQF1YwePER24DG8gOmk4AnxvbD3LHp+L9Tl/Hc1pN2z4+LCrP7YLqDUZg2bbQd1jTl5ejx4JBkbhFAREErOSYS04f1xsajF+1+50xQ05GeWgjg6vVm1SkgR0m5gbqwgsGLn1D7gI0f1AvPbz1pl8k+vK9puVxe/0S8+mg2DpZfxbrD5+1eVycBj96Vig8PKS+HVmKEciG7lz89jf/adtrqwuD0EhEFE72hCZtL7AMXwBS4LMjLwDv7Kt12QwmYAp61+yoUg6MD313B6j3lDkfKA3FhBYMXN+vMKITSB0ytpsDeb64AsN792ZYEgZen3oHZd2dg5ohUTFtV5FTUHyJJmHhnL2wrrbb7nbyFQFZSdwCw2vyL00tEFKjkvl1pBMRS94guePGhQbhQ14i39rqekwgo3zwaAcwemYZ1h6usHrcMXGSBkpTrCIMXN/LUKMS1plbr7dYBLLsZzDgKRgZEC7T8aMQfPi/D+dom5yr03pxbLdyuvmrJKICpq4oUfxcMFw0RBZe3/lFurr+lk5SXR8v+8Pm3nXovCcovHiJJGH1bD7vgRWm5dqAk5TrC4MVN3Lme3nL0BoBiIOHMFFBZvYQXP2l/6bSl5Q/dgbiuYR2uSRAMFw0RBY+39pajwKIPNgrTyEinC7comH1XKtYfPm/30jqYit6lxil/l9geP+GOXgF/A8ngxU3ctZ7edvRm5sjUTuwe7ewOHLeMH9QLX1UqbwjWHp2EgMlkJyI6fr4OhQq1s4QA/nVMOt49UOm299JJQEOzfTVeAHh8TDq6hnfB+Tr13a4tbf+6Gis/K8Po2xICdiEFgxc36ex6er2hCV9V1tqN3qxXSML1pOJzdUiLj1KuGqnwmEwH04Zhzu67QUTkzzYcqVLdv0gC8F5RpVvfzyiArccvKf7uvQOVeO9moOTsoM8bX5TjjS/KA3YhBXeVdpPO7OIp7zz9zPpjbq3Z0hGL1pVg+uoiPDy8t/nDoQOwYsZgFM649fdJuDl0CtPf6sqGYURE/kxOA3DUHbsyIi4ByLs9oQNj4Qrv6+LxjnbI1jKOvLhRR9bT2+bK+AN5s8jNFlsFyEWQ/jRrKCCAnHRToBJotQOIiNSq6EoSMOuuVKw75NqIuACw99sa02tAeS8kN66sthOICykYvLiZq+vp33NzhVx3aRPCHLhU1DTg4+OXzNUdLYchA+liICIC1DfV3bxwNHpGR+DDw+c71W/fem2BR0f2waCUGLz48akOv6ZOAibdkYQdJ6sVXyMQF1IwePEhvaEJazqwN5G37P/2CmavKbe7S3B2JRUr7xKRFqmV1ZenxueNzehw3y1gPcqy4chFCFw0T8W7OgLz8s2tYuTR8cqaRpy4cA2v7DgTcFsCWGLw4kW2X+YVNQ2eWG3nNqv2lKv+rr1hSFbeJSKtsC1PUVHTgLz+idifP05xavzufvFuuvGUzN8Bwvx/XFNV22hXSTc3swceGpoS0NP6DF68ROnLPK9/ot3QpAQgf0oWXtl+xq3lpd3N0TCkO2veEBF5kmXfLCfUysXolG66NhypQv6mUq+3U82avRV4cHCy1YIJ2xvlQBwFZ/DiBWpf5vvzx9lt8CWHK/vzx+HouTqcuHgNb/+jwq9GaEIkCUsmD0BFTQMA2F0M7qp5Q0TkSbZ9s2W3pXTTdfx8neryaV8RAKatKkLhDFOgZXujPH1Yb2wuuWgOzubfk4G5YzM03xczePECtS/z4so6bFLYmbRgWxm2l1bj2PlrXmnfy9PuQNF3V7Hta/u9jGzpJOCX9/ZTTN6VdbbmDRGRN6itKpJZ3nTJIy7+FLjI5C1jWn40Wm3kaxSwuzl+e18F1u6v0PxUPuu8dJLe0ISi8hqHa+gzErrare8PkUwbZKhdCN4KXABgd9kVPPdPg7D16dH41U9uw79P6I/Zd6Uq1iQwCijuYKo3NJnPBYAO17whIvIW+UZLjXzTZa774oHIxdH7u8II4DmLwMXhsQFQ+4UjL53gbFKqvAO0TIKpjH5O3zinqyV60u6y75FbsBtT7kzC9q+rHbZHaUv2NiHw3oEKrN1XYXUu1JLdiIj8ge2qInnPIgHrm66i8hqPlbRIi4tCZW2jZ17cAa1P5TN46SBnk1KVKjVKEszHFc4YjKUb/SP5q71pIznXRZ4ykukkU9KY5VClnNOTm9nD6jUCMXGMiLTLtrgoYCq+GRWmQ0NLG/SGJuW6LxIwa1QqPviyc1u4eDJwkXei3nezQJ4lnQRNT+UzeOkgZ5NSlY4zCuDouTrEdW1AVlJ3j1dXdJdNC3ORnRqH2MhQq/oH/zo23W7ZoNK54PJpIvJHtsVF935zxa6vsh2hEQKdDlw86aWpd2D8oF4AgNEFu+1G1J+6L1N10YUWMHjpIGeTUruGhSg+/+l1JQA8XxbanUovGpCdGqd4p/KOTaVgHYCrDc3QG5rMS/W4fJqI/N3x83WmxFyF1aHyKtBF60p8Pt3fnvN1t24eC2fcCrx0ACbdmYT/2VOOVRreuJEJux3k7EaMDS1tDl9HK4ELAJy90mD+b7kQknzHYnku5DyeRetKMKZwNzYcqXI4UkVE5E1qCy3e2luOqauK7Pply5HkuK5hfh+4AMDavRXmv2/myDTszx+H9fPvxuanR1ttI6DV5F2OvHSCMxsxKo3QaNV7ByoxIKm7YoQun4viyjr86sMSuwtj08JcLp8mIp9Tm75+6x/lKNhepvgcy75KXj3q7126EUBxZR3iu93KMVRLPtZi8i5HXjrJcgRC7ffTh/X2cqs8Q8BxhJ4cE4n4bmGKF0Zji5HLp4nIp9Smr4+fr0OhSuCik2DXV41Mj1M81t/86sMSzF5zyDwCDigvD9fijSRHXjxMb2jC5hLrQnTyBlxqozFyVO/tfJghvaNx4mI9ANMF+1B2CrYcu2R1THsRuqNcoNzMHu2OVBEReYra9PWRyjrVkRSjMNXd6hreBRfrmlC4vcxvRl1u79kN335/XfF3EqCaY6i06aTW+mMGL26ktAxY6WIRAJ59oD9Wfv6N3WtIErD2sRzoDTfwuy0nvdDqW+TABTB92D8+fslueNSyaJPSkuf2LgzbrH4iIm9RmvKRAGS0M+qw/vB5rD/sfyuLyq9cxzuP52DljjM4fflWEDMqPQ6HKuusjm0TAusPVSGxezhio0KxaWEuGluMmr2RZPDiJmrzqEojERKgGLgAppGWee8Xe6fR7TAKYEFeBt7ZV2kViHx8/JLp7kNlybMzuUBERH5BAppajb5uRYcYBRAVFort/+9eHD9fh68q6zAiPQ49oyMwpnC33Y3za7u/M/+3BNMqJNtaXFrBnBc3UJtHlZcJW+Z66OD/iV6Wbu/ZzZylvj9/HK41tqJgW5ndMkLbPJj2coGIiLytoqbBrv8VAoBwX5l+b4sKM32NZ6fGYd49/ZCdGmf3vaNE3g9Ja6uMZAxe3KC9ZcB5/RPxp1lD8casYXht9jAftLDjlvytFHu/uWKOzpWS2rjkmYi0QC1ZNSc9DksnZ/mmUZ00bVURNhypMi//Pn6+Dp+cuISosBBsWpiLBwcnqz7XCGi27+a0kRs4SlK1nU7S2gUiAORvKkVe/0R8VVmrOGqkk4Ca6zfMI01ERP7IUU7e4N4xvm5ehwjA4RYzjgaUdNDuFgEMXtxA7YIAYDed9Mr2M3j6vkys2lPuwxa7Rgjgjd3fYf3hKsXfGwXwzPpjmq3USETBQy0nL5BqcllS+3MkAAUzBmv2hpPBi5soXRBqxYDG3p6I6KhQc9KrFqw7VNVurg5L/hORFiitekyOicTSSVmqheoCyW8m9sfDw/toup/2Ss7LqlWrkJ6ejoiICIwaNQqHDx9WPfbkyZOYMWMG0tPTIUkSXn31VW800S1sk1TV9jVqbGnF4N4x2LJwNNbPvxtP35fpzWZ2iLMxFvNfiEirBvfR5tSRqwyNP2o6cAG8ELxs2LABixcvxgsvvICjR48iOzsbEydOxPfff694fGNjI/r164fCwkIkJSV5unkepbav0RN/KcbsNYcwbVURTly4hujIUC+3zDWpcZEO501tydnvRERaICe7dg0L0eyqI1es3X9Ws6uMZB6fNvrjH/+I+fPnY+7cuQCAN998E59++ineffdd5Ofn2x0/cuRIjBw5EgAUf++vlIq2qc2hylNFAtDEEOX5Otc+5I0tRrvzoVbUjojIl976R7m5aq5OAqYP641NRy9qqqSFI9OG2ldKNwpobi8jWx4NXlpaWlBcXIxly5aZH9PpdBg/fjwOHjzolvdobm5Gc3Oz+ef6elOV2NbWVrS2trrlPdrzUfEF/G7rKfOKopenDsLPcvogIaoLXp46yPy7YKCTgGNVVzFn7Zfm8zEtOxlbjuvtzo/ecAPnrjaib48oJMdE+LrpHSZ/zrz1eQtWPM/eEUznec3+Crzy2bfmn40C2FxyEQXTByF/8ykftsx9hDDa3UTrJKB3TJjf/Ru70h6PBi81NTVoa2tDr169rB7v1asXysrcM+JQUFCA5cuX2z3++eefIyrK80vArjUDLx4Ngbg5sWIUwH9sOYnWqhOIDQe6AnhhGPAPvQ679RIcL1zTvrsTjXjls2+szsemY5cAm/Pz5dFS/L1KBwEJEgRm9jMit5e2I7ydO3f6uglBgefZOwL9PF9rBv77aAhs+2SjAL48WoqBsRJOX9N+n731uB4PpRmt+ttHMowoObAbJb5unI3GRufzJTW/2mjZsmVYvHix+ef6+nqkpqZiwoQJiI6O9vj7f3m2FuLoV1aPCUjIHHo30uKjcO5qIyJafsTuo8c83hZ/8Mh9Q1H01xM2j1pf/AIS/n4+xDwsKyDhrxUhWPhwniZHYFpbW7Fz50488MADCA317/wlLeN59o5gOc9Kfbdsy7kQjYcsliTcnzsM//5ILKpqG5EW73ik25cj4vLMiTM8GrwkJCQgJCQEly9ftnr88uXLbkvGDQ8PR3h4uN3joaGhXrnwbkuKVixQd1J/HY+991W700WBVFdAkoCMxG7t/k062P/eKICLhhakJXT3aBs9yVufuWDH8+wdgX6elfpuSwHSLQMAfv3XEyh0ogaX2h593uLK582jy0LCwsKQk5ODXbt2mR8zGo3YtWsXcnNzPfnWXmO7h0SIJGHJ5AFYsaPM4Re4BGDV7GF48aFBHmyddy8/IYALdU2YNzbDnLEfIkmYMby31flZOjlLsUS3Vis9EpH22PbdgTPSYk8IU6V0RyuMHO3R5488Pm20ePFiPP744xgxYgTuuusuvPrqq2hoaDCvPnrsscfQu3dvFBQUADAl+Z46dcr83xcvXsSxY8fQrVs33HbbbZ5ubofYFqhT2uvI1vy8DDw4JAULP/DkDtLevRwlCVi0rgTi5jsvyMvA3DEZSI6JxL9PHGBVwC82KlSxRDcRkbdY9t3ffl+P57cGRpKuEiGAo+fq8OAQ5X7W0R59/tg3ezx4mTlzJq5cuYLnn38e1dXVGDp0KHbs2GFO4q2qqoJOd2sA6NKlSxg27NbmhStXrsTKlStx7733Ys+ePZ5ubofZVmxsb+okLESH4+frsK202gut8wxJAiBgXmJo+fcKAO/sq8TcMRkA7M+PWoluIiJvkvum9IQovLD1VEBNF9lyVNHd0R59/sgr1cQWLVqEc+fOobm5GYcOHcKoUaPMv9uzZw/+/Oc/m39OT0+HEMLuf/4cuMjkQkcA2t2O/I0vyvGnXd+q/l4L/v2B/tjy9GgsyMtQDNTaq7ZrW5GYiMib5D5b3lS2cMZg85eiDsAyjW2k64gEICc9TvX3SikQ/jwirvnVRv5CKdFpf/44VNY04rsrP+C5LSftnrO77IoPWuo+//35N1j5+Teqv/fnqJ2IgptacqrliDAAcwE7rSu02IRRLhraNSwEDS1t5uKhWhoRZ/DiBmqJTvvzxyE3swfSE6Lw/NaTmtmE0RVqf5IO8OuonYiCl1qfLW8qK/dbReU1ARG46CQgK6k7isprUHrBYLegxDJ4U9q00h8xeHGD9hKdkmMikT85CwXb/H8rAHdZ83gO7h+o7b2piCgwOZucqra5rtYYBTB1VZHD31sGb1rAHfTcQE50smQ7ZfJQdoqXW+VbUWHK6/Ut55iJiHzBmT4bUN9cNxC1l6Pobxi8uIGc6GSZ6GU7ZVJR0+CTtnmDbVqyWq7LhiNVGFO4G7PXHMKYwt3YcKTKOw0kIrLgTHKq3tCE8u+v+6qJXqe1HEVOG7nTzaXDSuVV1HaYDgRTh6bg42OXYIR6hnp7c8xERN6klJwqJ7KWXjSgcFtgJOo6QycBSyYP0FRfzODFDdr7YpYviEl3JGHb19qt66Jmy7FL0EnAgrH9MHdsutXfLGexa60AEhEFPsvkVMvVR8HgjVnDcLq6Hqu/KIdRACu2lyE2MtSr2wF0BoMXN3D0xbz3mytBcUEYBfDO/grMHZuuuAQxr3+ipgogEVFw0Bua8FVlbVD00zJJAlLjI/GrD0vMo0taGw1nzosbqGWkN7a0BtUF0SYEjp6rUxyFAtBuXhARkTfJeXjPrD8WNP00YKq0e6SyTvWmWwsYvLiBWkZ6RU1jUF0QALDzVLXjC0LOBwrkXdCIyO/ZTvcHm2uNLZreIJfBixuoLbvLSIgKuu/oLcf0iquPosJ0mtqxlIgCm6MNdIPhi3H1nnIsnZTVoe0A/KHkBXNe3EBedme5S/K0YSmY/5fioMlWtyUvvJIviIaWNibsEpHfyEjoau6nLOkkYPlDd+C5rfZbugQSowCG9Ik1b2Pj7HYAatsqeBuDFzexXHYXFabD9NVFQTscKe8y/fqjw5CTHmdefcSEXSLyBdvVj4DppnP+PRl4e1+F1bFGAZyurvdFM70uKkzn0nYA/lTyIhhGx7xG3iVZaZQBgN3UUiAzClNGu2VHoaUdS4koMDgqjjl3bIZdv6yTgHWHznu5lb7R2GJ06XhHK2u9jSMvHtA1LMRuODJEkrBpYS4aW4z47Gs93j94LuCnlBatK8H15h/NQ4pa2rGUiLRPaaRg2aZSRIWFYER6vOKU/yMj+2D94cAPXnQSUHP9BvSGJqf7YqViq74aQWfw4mbyfKBt4LJk8gA0tLSh9KIBf/nynLkQ79ShKdhy7JKPWutZAsCyjaXISuqO7NQ4AHBpiJKIqDOURgqMAnhm/TGrfA3Lm6ric3UBH7xIkmm5tO15aI9SsOerEXQGL26ktPROJwG/vLefYqlpAQRs4CIzApi2ugiFPkrqIqLgpZaUC9wahZFvruQv4NS4G15toze9MWsYJMk0Kt7R4nT+MoLOnBc3UovyV+0pD/gpIkcEl0UTkR8yCmDqqiK89Y9y82OBvJN0Tnoc4rqG2X0fqeWtqC2JlvM7fTmKzpEXN1KaD1SL+oMNl0UTkTsprSCyVVHT4FT/W7C9DJCAJ/MyA3YT3ZtrJZzOW/GXJdFqOPLiRkoramaNSvVxq7xLkoB3Hs8xXygyLosmIndxtILIklIBUTWF28rMyavTh/V2Y2v9gxAw30C2t/JTb2hC/kb/LirKkRc3s50PBID1h84HxeiLHJ3fPzAJhQpJXQBQVF7j8E6JiMgRV2qNJMdEYunkLKzYXgajMH1R/1N2smKuoQDMUyebjl709J/hdRKAqw3N0Bua2s1beXd/herUkr/03QxePMB2RU3hjMFWw29CBOZU0rMT+iM1Pkrx4tj7zRWMKdztt0OQRKQNjmqN2H6xbjhSZQ5cJABLJg3AQyorPHUA0hOiFL+4A8WidSVW/a9SIKI3NOGd/RV2j8vnx18wePEgeU42r38iNi8cjSOVdRiZHoey6h+Qv7E04C6Q//7sGwCmqaP8yVl4Mi/TXF3XX6oyEpG2OZuzIU99yIcJAK/sOANI9rmIEoCCGYPxff0NrN1n/8WtdZZ/r+0qK8A6f0htz6cn8jL8qr9m8OJm8oeg6Lsa0yojcWsDZbls/vRhvQMucLEkBFCwrQwQwJP3Zrp0p0RE5IiztUbUpj4Kt5fZBS5rH89BzfUWTFtdFJB9s+3fZBTAtFVFyJ+Shas/NGPNvgrz99PSSVl2waFOAuaOyfBmk9vF4MWNLLOzLVn+aBTAxgCcT1WyYnsZHhqa4ldVGYlI+9rL2VCb+pBgurmyJAA88X6x+b+DhcDNm0wLRmEanVo6OQuvbD/j80J0jjB4cROlAnXBzghTAlxuZg+/qcpIRIHBUbVutamPWaNS8eHh8w5vMINdmxAY0tv13aa9jcGLm6hdLMHuxMVryM3s4TdVGYko8CmN9uok4Jmf3I7sPrG80XRATsz1961cWOfFTdqrJxBEG0pbeWX7GXNtAH+oykhEgU+plknBw4ORHBOJvP6J+H8P3O7jFvovf0vMVcORFzexTSKTSQBm3ZWK0BAd3j94zncN9BEm5hKRLyiN9qrlJQajaUOTseWY3uoxf0zMVcPgxY0sL5aoMB0+PVGNtfvPYl2A71DqCBNzichXLKc+mJd4S4gkYenkgRiYEmNVwE9LuYgMXtxMvlj0hias3X82qC8UrV0MRBS4HOUlBtMedHKxvoqaBjyUnYKHslM0mYvI4MVDgjmBVwIw/55+mDs2XVMXAxEFroyErqpBSrB11YU7yiA0Xu2cCbse4iiBN9CTdwWAtfvP+roZRERmyTGRmHRnkq+b4XMCt2rdGAWQv6nUrzZcdBaDFw+RE3htd1dekJeB12cP802jvMgogPcOBF6ZbSLSJr2hCZ+drPZ1M/yOEMDRc3W+bobLGLx4UF7/RLtqjmv2ViAyNDhO+9t7KzQZ0RNR4Anmqfz2HPjuqq+b4LLg+Bb1ka8qa+0esyxFHQw4+kJE/kBtKl8CHNboCgYfHqlSvdHUG5pQVF7jdzeiDF48SLKdM7opmIL/tRx9ISI/oDSVLwEonDEYmxeODvhcREeMwrSVi60NR6owpnA3Zq85hDGFu7HhSJUPWqeMq408KKdvXFAtwVMi728EwLzlOlcgEZEvyLW4jp6rgxBATnockmMiUVReE9T9tARY1ePSG5pQfK4O+RtLzefFKIDfbvoaef0T/aIPZ/DiJnpDk+KX8/x7MszbjQer/+9gJXacrIZR40vziEj7kmMi8eAQ6y9fpb2Qgonln+2oCrE/VUxn8OIGlv/Y8pczAKvHMnpE4azCsFww2Pb1rQx/f4veiShwqd1UKh2zdHIWXtl+xmp7l2By9FwdhveFwyrE/lQxncFLJ9mWnDYKYNnGUsAiijcKBG3gosSfonciCkxKN5W2I762xzx1XybiosLQ3NqG//78Gx+13DeEcLwiy7JiujNBoacxeOkkpX9sIxDciS7t8KfonYgCj9JNpeWIr97QhK8qa+2OWfVFOQBTDkgw5StKMOX/AFCcPpt9Vxqeuf82u80tfZkGwNVGnaS0/E6H4Fl6lxQd3u4xw9Nirbam535HRORJSjeV8oivvILmmfXHVEcZBIIncNHBtOJK3pdv6aQsu2M2HDFtLqwWFPpiRSlHXjpJXn73201fo00I85czAKvHBiZ3x9eX6n3cWverrm9u95jj5w3YtDAXjS1GRIXp0NDSBr2hiQEMEXmEUgJuiCQhKkzHnaVveufxHESFhdptyDi4T4zdsXLgJyBUg0Jv9+cMXtxAXn5nuzOn/FhUmA7TVhX5uJW+0yYEGluMqKpt8IvhRiIKbGo3lQ0tbUEXuNzXPwF7vqmxezwqLBS5mT3sHlcL/OSpfke/8yYGL24iD7kpPRbsNQR0EtDY0upwDpqIyJ2Ubir1hqagWxKtFLgAwP7vrigGL2qBn9xPO/qdNzF48QDbTGxHW7EHA6MAnvhLsd0+T1x1RESeZHtTqfTFPOGOXtj+dfBt2Pg/e8rx87v7Kva/ef0T8eqj2dBJEob3jbM6Rm2mwdsYvHSAo2ViapnY+ZOzULC9zEct9j2l0gk6AFFhzBknIu+x/PKVc/AyE7ti9Z5yGAUgScr9VaCRtwRw9jvMktJMg7d55Ztj1apVSE9PR0REBEaNGoXDhw87PP6jjz5CVlYWIiIiMHjwYGzbts0bzXSKo70eHGViPzQ0BRMH9fJRq71v/j0Zio9bfuCMAKavLvKr/TKIKPAlx0SiqrYBU1cVYfaaQ3jji3I8dW8mfvfgQKx9LMfXzfMK2y0BAP9aTdQejwcvGzZswOLFi/HCCy/g6NGjyM7OxsSJE/H9998rHl9UVIRZs2Zh3rx5KCkpwbRp0zBt2jR8/fXXnm5qu9r7h1VbnvfegQqMLtiNz05d9nKLfUMH4KdDku2XkEvAmsdzrDZG8+eLg4gCh97QhE9OXMLfj1/E8fN1WLqx1Or3q/aU4+VPT2Pe+8U+aqF3zborzW70xNESc3/j8eDlj3/8I+bPn4+5c+di0KBBePPNNxEVFYV3331X8fg//elPmDRpEn7zm99g4MCBeOmllzB8+HC88cYbnm5qu9r7h1Ws+SIBb+8Nrr2NjAAaW4x2O7gKARw6W6ua+0JE5AkbjlRhdMFuLFpXgmfWH8PUIF79KWts+dHuplHpO8xfi4p6NOelpaUFxcXFWLZsmfkxnU6H8ePH4+DBg4rPOXjwIBYvXmz12MSJE7FlyxbF45ubm9HcfKvWSH29qZZKa2srWltbO/kXWOsTE26Xqa6TgN4xYWhtbUVCVBe8PHUQfrf1lHm+cO7ovnjnwDm3tkMLQnUCuRlxVlnKAsCafRUOz6EWye3Wavu1gufZOwLtPOsNN7BsU2lQ3UA6Y8uxS9h67BJ+P20QfpbTBwAUv8NemjoQCVFdvPJ5cOU9PBq81NTUoK2tDb16Wed69OrVC2Vlysmr1dXVisdXVytngxcUFGD58uV2j3/++eeIinJ/tPhIhoQNZ3UQkCBB4JEMI0oO7EbJzd93BfDCMODKDQmJEQIXasoBhMA0wxg89uwrwvVWQCDE6nEBYFySEV/oJdVzqFU7d+70dROCAs+zdwTCeb7WDJRclWAUIe0fHIQEgN9uOYmSY6XoGgrEhwu0GCX8+g7T/0+MEOh6+QS2bTvhlfY0Njo/Aq/51UbLli2zGqmpr69HamoqJkyYgOjoaLe/3xQACw03UFXbiLT4KCTHREBvuIFzVxvRt4fpZ0vvHqgEzgTXBl+SBESlZmH1598q/u7FOffhRcDqHGpZa2srdu7ciQceeAChoaG+bk7A4nn2jkA5zx8VX8DymyMI5IiEjyqtgzudBLw89daIjLfIMyfO8GjwkpCQgJCQEFy+bJ2oevnyZSQlJSk+JykpyaXjw8PDER5uv79OaGioxy68tIRQpCV0B9D+srK7MxMABFfwMmFgL6z8/FvlTkMAoaFdkBwTaT6HgcKTnzm6hefZO7R8nvWGJvPUhzOCZXm0s4wCeG7raYwbmOTVJdGufN48mrAbFhaGnJwc7Nq1y/yY0WjErl27kJubq/ic3Nxcq+MB0/Cl2vG+5MyysuzUOMwY3ttHLfSNz05ddrjhGZNziciTlBZXOMLAxZ6/L6Tw+GqjxYsXY82aNXj//fdx+vRpPPXUU2hoaMDcuXMBAI899phVQu+//du/YceOHfjDH/6AsrIyvPjii/jqq6+waNEiTzfVZc4uK/vDI0PxzuPBUTugPTrY1xYgInInpVUzanSA08cGCgnAy9PucJiJ6a+rjGQeD15mzpyJlStX4vnnn8fQoUNx7Ngx7Nixw5yUW1VVBb1ebz5+9OjRWLduHd5++21kZ2fjb3/7G7Zs2YI777zT0011mdrSaKWqsbvKlOvaBJulk7N8XpmRiAKbvA1AiOQ4KgmRJBTMGIylk7OCKoCZNSoVP787HYUzBisGML7cs8hZkhCBNWBWX1+PmJgYGAwGjyTs2tpwpMq8T4bMNvdFb2hCbsFuj7fFn+gAPDUuE//zRTmMMJ2TpZOz8GRepq+b5natra3Ytm0bpkyZotkcAS3gefaOQDrPekMTKmsaceLCNbyy44x5P6MlkwdgSO9YpCdEYe83V8zT/xKACYN64rNTgX2zKQEonGH6jtIbmlBcWQdJAvrERaKxxeizPYtc+f7W/GojX5s5Mg1ZSd0xbVWRuY6A7Y7J7+2v8GkbvU0CUHDzwvj53X19voEXEQUneQ+e3MweeGhoirkvAkzT/t/X37DKWxQAdgZ44ALcXCJt8R3102zt9c0MXtygoaXNrgCSZe7Lmn3BE7z8ZmJ/PDy8jzlQ+b7+Br6+dA1RYToGL0TkM3IgY7lCVGmVkdE3zfO6NiFQXFmnycAFYPDSYZY7S8u5L5bJu3KyU0VNQ1BVdhyeFo/kmEjoDU1Y8rcT2Pdtjfl3M4b3xh8eGeq7xhFRULNdIRpYSROu+9WHJWho+dFu12gtYPDSAUq1XQoeHmzOfdFJwJLJA8wjDcFSQ0C6may84UiV3aZnALDx6EVkp8bggUHerR1ARAS4voQ60NmmOGiJx1cbBRq12i55/ROxZNIASDcfW7G9DBuOVCE5JhL5k7N82mZvEQKYvroI+QqBi+z5racwpnA3Nhyp8mLLiIhcW0IdLPy9nosaBi8ukLdUV6rtcvRcHVbsKLNL2tUbmvBkXiaWTc4KipNtFGh3mkypmB8RkafZLqFuZyV1UPD3ei5qOG3kJMupIlshkgSjEKoF65JjIvHkvZm4u188t2K/yfLcEBF5i7xCdHfZ9/jTru983Ryf0kI9FzUMXpxgO1VkSf7HH5Eer5i0GxWmw9+PX4QkSQiwkjqdotVon4i0zdGNaLBYNjkLQ/rEarqEBYMXJ6gleT334EBMGZJs/se3TNoNkSRMG5ZiVf8lWEhwPHWkAzQb7RORdukNTcjfWBp0fbKln9+diifv1X6xUAYvTlBbCm0ZuACm4ci8/omorGlEVJiOgYsCnQRsXjga2alx3moSEREA4N39FUHXJ9v63y/PIzW+Kwb3jkFGQlfN3kQGQw5pp9kmeTmaJ0yOiUR6QhQOV9YG5UVi+TfrADw9LtPqvBU8PJiBCxF5nd7QhHeCrNq5moJtZZi95pCmV35y5MVJlqMqjuYJOZ96ixHA2NsSuUUAEfkca7zY03KdFwYvLpDLS6s5fr4O+ZtKg6IgnTN0EswBi9YuDCLSFsuq50r9jdL0P2l35Senjdxkw5EqU44LLwyzJ8b2s7og9IYmFJXXsL4LEbnVhiNVGFO42+FUiDz9LxepY4kXEx2gyZWfHHlxA3kpNeMWaw8OSTL/t9KWClrcT4OI/IujqudKownyDSb7a5OR6XGoqGkAAE2NvnDkxQ04l6ps+uoibDhSpdq5cASGiDpLqf+1LHkvj/geP1/X7k3mgnv6Bd2IzKHKOk0m73LkxQ04l2oybWgKthy7ZP5ZDlJefTTbYfVhIqKOUitlkZ4QZTXi294GuToA11t+DNoRGa0l73LkxQ1sl1LrANyflejbRvlATl/7JdCmXbYlu83QWGGXiNxBrZQFAKsR3/byEY0A1h3SzsiDJ2hpk0aOvLiJvJT6vf2VWLv/LHaVXfF1k7zuua0n7YrUhUgShveNs6s+zAq7ROQuSqUsisprFEfD2yukGYjke8f2/m4dgKsNzdAbmvy+f2bw4mZr958N6ukjAZiHcCUAj4zsA8D5OjlERB1hW5JBbTrp7ceG44m/FAfVytD/nHoHGlvbsGJ7mXnRxBNj+6FH9zC8sv0M2oQwB3WL1pVoYlEFp43cKBgSd8dmxrd7jNEim3/94fMYXWBKBEuOiURuZg8GLkTkcWrTSfcPTEKh5TS/FPjLpp/behIF28qsptAye3bFk3mZ2J8/Dm/MGmbKCbp5vBYWVXDkxY0yEroG9JBkalwkDpTXuvw8AWDZxlJzIlh7xaSIiNxBHvE9eq4ORiEwIj3e6nF5JHjvN1fM09rBQMCUDxQVFoIR6fGI7xamuUUVDF7cKDkmEvmTs1Cwvczud7YrcbTofF3Ho3AjgMqaRuz95grrvRCR16j1OZbTTHn9E/GnWUMBYVpa/ftt9n14oDEK4Jn1x6CTgKWTsuym2HQS8N2VH1Bz/QZGpMf7XRDD4MXNnrw3E5euNeH9g+esHt+q8cCls3QAosJ0LhWTknGkhog6wpkCdlbLqRG4I+dqjAIo3FGG/MlZt/JfbgYyz205CcB0Xgpn+NeNJnNe3GzDkSr8xSZwAYLvgrAkASiYMRgNLW0Oi0kpcabsNxGREmcK2Fktp/Zy+/yFEECf2Ejszx+HVbOH2Z0Ieerfn3JgOPLSCfKIQNewEDS0tKFrWEhQbxMgAXjmJ7fh/oE90TM6AkfP1UEIICc9zpzrolZMSomrZb+JiCw5KmAHBMciC2cJYUp9iOvaoPgdJk/9+0vfy+ClgyyHGmXBNuQ4NDUGJy4YTHPJAJ64JwOzRqWZP9wPDrH/kM8bm4F39lfAKNBuvRdHd03+cgERkf+SVxyp1ZhidXQTCaabTED9nPjbBo4MXjrAdkRAFmyf/2PnDQCAUelxOHKuDm/vq8Da/RVYOjkLg3vHWOWo2M4rL8jLwNwxGQ6DkPbumoiI2uOoxlRyTCSWTlJeZBEsdDBN68vnRQ748jeVmmvhSDbH+AMGLx3Q3lCj/IWrk4DJdybj01K99xrnA4cq68z/bRRAwc1MfTmzP69/ot288jv7KjF3TIbD123vromIyBm2BewsDe4T4+XW+F6IJGHJ5AEY0jvWKqCTUyHy+ieiKP8ndlP//oTBSwc4GmoMkSRsWpiLC3VNMAqBtPgobP9aH5TDknKOyp9mDe3w9A8r8xKRJwXq1NHY23rgevOP5hFyAJhyZxL+JTddsS+1HB3XSaYp/n8d63h03Je42qgDbCs3yuSRgbLqH/DM+hI8s/4Ypq8uwvRhvYP2RLcJAdy8GCy5Mv3DyrxE5Cl2G+tKwC9G9/VxqzrvQPlVHDtvgATgp4OT8c7jOfh5bl9zv1tUXmNePaS0OGLNvgpzdXR/xJGXDrIcEYgK06GxxWj+UIwp3G31IdhScgnLp96B57ae9GGLfSc13tQ5LNtYCiNMETOnf4jIX9iO8C752wlfN6nThMU0/aelemy7OQNgubBEntpPjY9SHHkS8N8VngxeOkFpHlVpJ9M2IXDlh2Yvtsy/NLYYTf8hXzWBvpEIEWmO3J8fP1+Hfd/W+Lo5biVgHczI5Kn9TQtzVafO/HWFZ7DOZniMPH9q67Xd33m/MX5AgnplXX8qeEREwUtvaDJPoxyudH3/Ni1rEwKNLUYUPDxY8bvLX1d4cuTFzWxXyBDw6Qn7hGV/jeaJKPBZbjliu/fRU/dl+rp5XqWTTPVbcjN7ICupO97eexbbSqsh0H4tLl9i8OIB8vzppyf0ePnT075ujk8JAGv3VbBeCxH5BduaU8CtqRSjAP7ni3KMG5CIL85c8VUTvUoI0+aVAFyuxeVLnDbykOSYSBytqmv/wCBgBPDE2H7mbH5/juaJKHAp7WVkOz5uBHB7z+4BseLIGQJA/sZS5G+0r8Xlzzjy4iHHz9dhW2m13eOP390Xhhut2BJEu0yHSBLmjk3H3LHprNdCRD7j7F5Ga/efxYH8n+BaYwu2HAvsIqOAcnV4f5/a58iLm1gmfAHA23vPKh7XBmHeQyKQyYlflqMsrNdCRL6ktqDCllGYNiEcPyjJ843yU/4+tc+RFzewrUy4dFKW4qgLAPzvl/5Z8Med5CrDcu0bBitE5A+UthxZMmkAVuwoU8zJO3Hxms/a6gs6mKbNtDC1z+Clk5QqE67YXhZ0mzRaWjJpALJTA390iYj8k+VqItsvYKUtR2KjQu32UANMfblW/XRIEgb3jnV600mt3XQyeOkkpTlUo2+a4lWOsvGH9In1bmOIiG6yHQkveHgwZo5MszrGtsCoUkCjVHBUSz49UY3pw3o7daxOMlU919JNJ3NeOsmZOVQJgVdUdo9K4OLsPKltjhARUWcpjYQ7WxDTNicvI6GrpvttAWDe+8VOHavFII3BSyfJc6iOAhhJAvInZ9lt5KhlSp91OXpvb7hxw5EqjCncjdlrDmFMof9u/EVE2qI0Ei6vmiHHlm0s1dTNJIMXN5g5Mg1/enSo6u+NwjSVsj9/HBbc00/T0bwaHYDNC0fbDc/a6sydERGRI0oj4Zajwc6O+OoNTVh36FxQ5S4aAU0Fecx5cZMR6fGqG1tZXjxr958NuAtCTnBzZr7U0Z2RvyeIEZF/U1pNJI8Gv7W3HIXbyyAc5MIAppHh/I2lAddPt0cH+PXSaFsMXtxEbU8jnQT869h0AM4XSNISHYBNC3PtAhe1bH/5zohbBRCRJygl3771j3KrVTfyiG9e/0Sr/kkeGQ6kblqSgIX3ZmLVnnL1YwAUzBisqRtIBi9uZHnRRIXp8GmpHmv2VmDNvgq8s78CSydlqY7OaJURwJHKOvSMjjB/8B1l+zu6MyIicgfL1UR6QxMKFZYLW474yjdbtQ0tAdU/y/1vVlJ3xeDlNxP7o298V+Skx2muD2bw4mbyRaM3NGHtvgqrDb9e2XEGj45MxbrD533aRnd7+dPT+K9tp1Hw8GDk9U9UzGmxvMNRujMiIvKEipoG1QUG6QlRihs1BoqJdyRh5sg0rNmnPOoS0SUEP81O8XKr3MNjCbu1tbWYM2cOoqOjERsbi3nz5uH69esOn/P222/jvvvuQ3R0NCRJwrVr1zzVPI9Ty+0Yc1uCbxrkYUZhylYvPlfnVLY/twogIk+xTMxVK2exdHIWANht1BhIAcz2r6tx/Hwd7kqPV/z9CA1vVeOx4GXOnDk4efIkdu7ciU8++QR79+7FggULHD6nsbERkyZNwm9/+1tPNctrlC4Y05SRwIBe3XzTKDf6pyH2e34YARR9d9Vhtj8RkSfZlmLY+80VFDw82FyqQgdg2eQsPJmXqXiTKQDcn5Xo9XZ7yu7T3yM7NQ4zhlsXrJsxvLemitLZ8si00enTp7Fjxw4cOXIEI0aMAAC8/vrrmDJlClauXImUFOVhql//+tcAgD179niiWV5lm9shSYAQwDPrj/m6aW7x9xPKezd9eKQKSydl4ZUdZ5jTQkRepVaKYX/+OOzPH2c3Va22gOBX99+OL85cCYj8l7BQ0xjFHx4Zisdy++KryjqMSI/TdOACeCh4OXjwIGJjY82BCwCMHz8eOp0Ohw4dwvTp0932Xs3NzWhubjb/XF9fDwBobW1Fa2ur296nIx4emozcjDiUVF3Dr/96IqAy2NUYBXBHcjd88ew9qKptRFp8FJJjInz+b+FJ8t8WyH+jP+B59g4tn+fvqusVp63LL9djVEY8EtKiAdz62xKiuuDlqYPwu62nzAsMXpo6EIOSuuHlqYPw2y2nvP0nuF0fi/53UFI3DEoyjfz747+vK23ySPBSXV2Nnj17Wr9Rly6Ij49HdbXyHXtHFRQUYPny5XaPf/7554iK8o+pim8NEgRCXHiGdmdeJQiUH/sSV8NNP18FUOLTFnnPzp07fd2EoMDz7B1aPM/XmgEJIRAW/ae5Tzqt/JyuAF4YBly5ISExQqDr5RPYtu0EWpsBIATKfbFW+miBc6eOYptG1og0NjpfJM+l4CU/Px8rVqxweMzp0yqfEA9ZtmwZFi9ebP65vr4eqampmDBhAqKjo73aFjV6ww2sPr3XhSFILVwUyuaNTcfsiQN83Qyvam1txc6dO/HAAw8gNDTU180JWDzP3qH18xyadsFqJOXlqXfgZzl9XH6dL8/WAke/snv8JwMS8MWZGo2MpEsYftfdGJWhnLDrb+SZE2e4FLw8++yz+MUvfuHwmH79+iEpKQnff/+91eM//vgjamtrkZRkn+jZGeHh4QgPD7d7PDQ01G8uvLSEULvaJnn9E7DnmysQ2rgCnKIDMO+eTL85797mT5+5QMbz7B1aPc+z787AuIFJnS7FcFtStF0+jA7Awzmp2H2mxj2N9bAQSUJmr2jN/Du60k6XgpfExEQkJrafhZ2bm4tr166huLgYOTk5AIDdu3fDaDRi1KhRrrxlwFCqbaI3NOHTE3q8/Kl3R6s8gYm5ROQvLIvUdeY1rBZdAHhqXCZS4yIhQXlzWn8iOblRrlZ5ZKn0wIEDMWnSJMyfPx+HDx/GgQMHsGjRIjz66KPmlUYXL15EVlYWDh8+bH5edXU1jh07hu+++w4AUFpaimPHjqG2ttYTzfQ629omyTGRGJkep+FJIhN5i4C8/olObXpGRKQFpptOU20uAWDVF+WYuqrI7wMXAJAEkNc/cJZ82/JYnZcPPvgAWVlZuP/++zFlyhSMHTsWb7/9tvn3ra2tOHPmjFWCzptvvolhw4Zh/vz5AIC8vDwMGzYMH3/8saea6TVKu5luOFKF6au1cSE4YgTwaaneqrbChiNVvm4WEVGnrPysDF+cueLrZnSIEcCnJ/R2N5PO7qzt7yQhAinrwpTwExMTA4PB4DcJu0p7/eT1T8SYwt0BUUdAd7OGjeWfEiJJ2J8/LmCHLC21trZi27ZtmDJlimbmlrWI59k7eJ5N9IYmjC7YrfmbS8v95RztO6e2ma43ufL97bGRFzJRK5qkVEYfuLXOSNLIXFKIJGHmyFS7C1xpSwAiIq1Q2xNJa+TvnOPn6xS/i/SGJruqxFoYOefGjB6mtscRBBQrO25amIvGFiMaW1ox7/1i7zbWBZIEzB/bDz26h2GFwo6t3BKAiLRMqfqupRBJwj39E7BHA9NKbULgSKXyvnPFlcpBjeVmuv6IIy8eprTHUYgkISc9zmq/DXm1TnZqHKpqG/w6cAFM00Rr953Fiu1ldheEDoGd5U5EgS85JhLTh/VW/J0EYMmkAZpZbBEiSchQuZmsa2xxajNdf8ORFw+zXW5nuaRYbfl0/sZSXzfbKUZAcb3g67OH4cEh2txmnYhIb2jCV5W12FxyUfH3AkDh9jJNTCtJMN1MRoa59nUfFebfYxsMXrxAKUiR2dYj0NI8qw4AFKa+hvfV9oZfRBS8NhypQv7G0nb7Ya300/859Q7MHJkGvaFJMVUhrmuY4vMaW4xeamHH+HdoFUAsa7w4WqqWkdDVB61zzuQ7k6ymuQpmDFac+uJ0ERFpkTzyrZXApD0SgPGDepl/fmJshvlLX+6vc/rGKaY2+HvOIkdevMzRUjWZv1Zv3HGyGmsfy0FFTSNGWmyprjaqRESkJV9V1vpl3+usyXcm4bOvq2GEaWSiYMZgJMdE2n3vLBjbD3PHppv7a7XUBn/G4MWLlJZNL9tUapXV7c/TRkIAT7xfDAHrwMsdpbiJiHxN0kqNChWfn7yMzU+PRmOL0SqP0vZ75539FZg7Nt38PEepDf6K00ZepLRs2iiA9w5UmH/OSOjq1xnscvMtawQAgVO1kYiCV05fbW/X0iYEGluMVtvQqJXrsF1NZLt9jb9j8OJFSsumAWDt3grzl/7eb/y/ZoBMvgC0WOCIiMhWckwkCmcMNvfTSv21PwuRJESF6axuJNXKdfh7Tkt7OG3kRckxkZg3NgNr9lVYPS7vQTEyPQ7LNvlvsphSLs6B765g9Z5yzRU4IiJSYjuFsvebK5pI4pUkYNqwFExfXWSXU6nFnJb2MHjxsn9VCF4A4OVPT/ttoi4ArJo9DBfqmlBgU03XMnCRySMyWr84iCg4yXl8ekMTUuOjsPbxHHO+n98SwOaSi4o3klrMaWkPgxcv2/vNFdUgxZ8vjD5xkYrtMwr7EZlAGJIkouBmuULHn28sZQKmRRWWLG8kA21hBXNevMhdNQR8MQ372q5vsWhdid3jIZKE/MlZrPVCRD7lzkUDtit0HPXZ/pIXo4N9WwL5RpIjL15UfK7OLdG7L+4AdpXZJxLrJFPZ6Zkj0/DQ0JSAGpIkIu1wpn6WK5RW6CgJkSRMurMXPi2t7vB7dYYOppxJ+aYRAJZtLDXXeVkyaQAqahoAIOD6ZQYvXiRsx/Rukock5Q+iVix/6A5zBxFoQ5JEpA1KdUw6u2iga1iIw6kiHUx7uP3+09MeDVx0AKYMTsInCu+xIC8Dc8dkmG8aAeDd/RUQNxtuuf+SWkCnNzShoqYBGQldNdd/M3jxohHp8YoXxMJxmRh7WyKiwnTmTHEtiFfZE4OIyFsc1THpyBeyPIpj+ZLSzf8jxK1RjsaWH3HJcKMzTXdI/q5QClwkAHPHZJhvGpX2Y7L8b6WAzt2jVd7GnBcvSo6JxMJxmXaPv7nnLNITopCdGoelk7I8ktPi7nlZSQI3YCQin3NnHRPbURzA1HdueXo0tiwcjd89OBCbFuZi5sg07Pjas1NFAg5SBCTg+/obKCqvwfHzdU6V2LAsTKc2WqWlIqMcefGiDUeqsHpPud3j8odq7zdXsGKHO7dZFwAkSIBbR3PkKF1rw4xEFHiSYyLdVsdErQr6p6V6rN1XYTVKMenOJMVcQG8QApi6qgiA6UZSJSPBimVA5+7RKl9g8OIlcqSr9CGTqyLaRvydZ7odcedLPvfgQEwZkqyZDzgRBT531TGRR3FsR17W7K2w2xplyeQBnW+4GzgbuFgGdEp/p9ZWJnHayEvUstd1MK3YaWhp8/tcF50EBi5E5JfcsTePPIpjWfph3tgMuxvANiFQaFOw05MkdLxEhgTTqiPLfBalv1NrJS448uIlahH95oWj0TM6AsXn6uySeSWYhgQdBTXeLJ70xNgML70TEZFvzByZhqyk7jhSWYeR6XHoGR2Bd/ZXWPfdcO9UvBqdBLz26DBcvNbU4WBJAHhlxxk8NDTFKjjJ65+IVx/Nhk6SMLxvnKYCF4DBi0fZLkNTmpctq/5BdYXR2NsT8O8T+uNCXROeVigQB7g/cNFJpiXQ8V3D0CcuEudrm3Dw7FWsP1yFt/dVYO3+Cs1lpRMROUtpFY5t371k0gCs2FHm8QDGKEw3sJ3NhbTNZ9H6SiOAwYvHqH048von4ui5OhiFQFp8lMOl0fu+rcH+72owa2QqZo9KxbpD5z3aZknhQ9wzOgK/+rCEGy8SUcBTW4WzP38c9uePQ2VNI6LCdGhoacOkO5OwzU01XiQAs+5KxfrD5+22WjEK0ekgyTKfpb26OFqp/cLgxQMcfTj2fnPFpf0yhADWHfZs0CJb+1gO7h+YZPVYIGSlExE5w1F/l5vZw6r/7oifZCXiizNXrJJsJQl4dkJ/pPfoir49uuKVHWesRufV6oO19/0h/942n8XR32j59/n7iAyDFw9Q+3AUV9Y5vV+Gt80Y3tsqcJGj765hIZrPSicicoZibiKAqDCdYg0YV+22W1otIISElZ99A8AUcORPycKQ3rFWq6bm35OBt/dV2DwTmDmiDzZ8dcHuff59Qn/MyOmjuPpKbaWR7YpXfx9l52ojD1ArmgSV5Ftf7+v18rQ78IdHhpp/3nCkCmMKd2P2mkOYvroI04f11nRWOhGRM2xX4QCmLVumry7CuzZJu+5h3fsLAIXbylBz3bpy74NDku2+J0wBh/L4Q2ubUXX1ldpKI6UVr5aF7fwNR148QC05N6dvnOKKI08kfekkYEbfNowdNQzpCd0c5tYM7h1j/m+lKa/NJRex5rEcRIWFcuNFIgpo8mqjaauLzNM7RgG8s7/Cqan+EEnCtGEp2Hz0Yof2qhMAnll/zDxtA8Cugq78nZKV1B3vFVXavcZPsno6fA+lujh6Q5OmRtk58uIhM0emYX/+OKyffzf254/DzJFpqjUEPGFadjLGJgtMuTMJ2alxKHh4sOo/dmPLrUtMrcLkE+8Xo6q2gYELEQW8hpY2u+JvRgHMz8uwGpWxNXtUKvbnj8MfHhmKA8t+ggX39IODwx0yCtMO0XbbFQDmLQqyU+MwY3hvq+fNGN4b2alx0BuaUFReo1ry33ZkRmu1Xzjy4kFKOy3bRrwA7GsISMDyqXfguS0n230PnQQ8dV8mVn9RbhWZbzmuR/Yw6/e1vZsAbkXWjnJcANPdwLJNpVbzn1rJSicicoVaXsjcMaadnIsr6/B/py9jy7FLVs/bcPgCnvnJ7ea+ce7YdDw4JMlcyt+eaQsXNUb5EJvHLG84//DIUDyW2xdfVdZhRHocslPjOrwU2l2Vir2BwYsP2AY1BQ8PRr7F1gFCALtOf9/u64xKj8PPc/tCkiS7oUyjAIouSxhnuIG0hFAApmXP88dmmPbowK3I2jbDfPqw3thcclFxBOa9AxX47ZRBAVEngIhIiaP9kiz7PlttQuC9/ZVYu/+sVd+4bEoWCrYpFZlrf1hGaarqxMVryM3sYf45O9UUtADtL4V25m/356BFxuDFD+T1T7T6dAoAe860v+HXoco6HKqsM5eOtv2Af3YxBJ+v3IvCGbfmTeULasHYfpg7Nh0AMKZwt9UHfUvJJax5LAfz3i+2e8+1eyvw4OBkTWWlExG5Si0vJH+j+g7OOsAcuADWdWIggMLtt4rN5aTFoLjK0G47Zt2Valcu45XtZ/BQdopifxss5S2Y8+IHKmoaOrVsWkA9iUwAyLeZN5WTz+T3VvqgHz9/TfH1jACOVNZpKiudiKgjbPNCis/Vqfa1IZKEJ+7JUO0bY6NCrZ5rClwc9/whkmQ1wmL7mkrUVrv6a+JtRzF48QNKHzZ3ErDPYZE//Grv/drucsXX0gEYmR4XFBcHEQUntWRX4WAL500LczF3bIbKkmYd8jeWKjzLccc/bVgKRqTHu9Tfai3xtqMYvPiB5JhILJ2Upfox1gFYNjkLK2YM7lBNGAlQ/fDL7+3sB2Hp5Czz6qVAvziIKHjIActbe8vNda7GFO7GhiNV5mNGpMerPr+xxYi931yxG0uZNizFtHqpA23adPQivq+/odrfHj9fhzX7ynH8fJ3V85RWuwYa5rz4gQ1HqqzmQm2teTwHg1Ji8O7+CpUj1EtFS4A550Ut+WzFjjIYHbwGYAp+lk7OwpN5mQC0lZVOROSIWhKubT5fckwklk3OQoHNDs/y6MpShdGVzSUX8Vhu3w61SwCYtroIhQ8PNu+tJPe3z/71GDYevWg+dsbw3vjDI0OtVoEqTTkFCgYvPiZnhjuKypUSZ23Nv6cf3tlfgTYhFIMQteSz9rYr0AH4z2l3ICYyFCPS4+2WRzNoISIta6/sv22y65P3ZgISsGK7aVdp+WbwkxN6xecbBfBpqV7l5tDxUmnAtPpUTvqVg5Hj5+usAhcA2Hj0IpJjIrB6T3lQrAJl8OJjSgmzrgqRJHM9gV1l3+O1Xd+Zfydgf+fgyntPvDMJz289ad5IUn7NQL8wiCg4tNcPKuWXPJmXiYeyU6zqdS3bpJTTYuor395rP2q+/KdZwKWv0Zg4ECs++9ZhG20DqMOVtYrHrbKo9xXoq0CZ8+JjGQldO1yBETD9A8q1WqavLrIKXGRtQuDouTq7x51JFN7xdbXVyIzthaFWvZGISAsc9YOO8vksVyI5CoAyE7spPt7cZio098TYDCybkuWwL7YsJlpUXoN+CV0Vj7NtQiCvAuXIi48lx0Qif7JaASN1Ogl4QqVWi5JF60pwvflHq5ESOStdbchUkmBXIttSINYOIKLgolSQbsmkARjSJ9bpfL6uYSGqv/v2++uKj//X9m8gIQShaRfsRnL2fnPFLkfRtpjo8LRYHK26ZvWatlNTgbwKlMGLH3gyLxMQsEsCk4MHCQBu/rcOwBN5phLV8kVVVF7T7vSPXN4/K6m7uRIjcCsX5r0DFVizt8L8wZckYPKdSdhWWq36moF8YRBR8OjsAoSGlrYOva+AhP/Ycgp39I5Fdmqc+X3z+ifi1UezoZMkDO9r6q9ti4keq7pmf4MpAToBqwrqgXpzyeDFTzx5byYeGpqC4so6SBLMH1jLOVW1C0tpHw6lUROjAKatKkLhjMF2IzC/nTLIvGeHJAF94iIxfbXafhy3pqsC9cIgouDS0QUIekMTrl5vVtwTzhmWK4pmjkxT3HolNT7KfiWU/GTL1xLAG7OHIb5reMCvAmXOix9JjonET7NT8OCQFPOFJM+pyv8NwK54klJRot9MuB32Ox7dSuBVylWxfP+GljbVC1EnAZufHs1kXSIKahuOVGFM4W48s/7YrVHyDpBXFB0/X2dXDX3ZxlLzhrmWdFCu39UnLhKiUzXbtYEjLxogL08uvWAw1WQRt+quDO4dg4yErnbDnglRXVD1bRn+WhHi8j4XekMTahtaFJf26WC6E7CceiIiCiZ6QxO+qqy12ueos+FCmxCKW68YAXx6olpxo0jAun7XtGEpmL66iEulyfccFU+Sk3wtP6RyQNLa2orcXgL//MAo/OytQ04ncVm+n+WGj5YJwoE8FElE5IijXaXVSDc7UgFT//vLe/th9T/Krab2QyQJI9PjFG8a1+4/iwP5P7ErVAfAfNMaFaYzBy5A4C+VZvDix9orniRz9CHN7hODwhnKW7u3935y0PL6o8OQkx4XkBcAEZGznO2TZZZFPtPio9DYYjQHHr1jw/EfW05CQDL3y9mpcZh/Twbe3mddF8YoTDmPlptEyuS0AqWFG4G8IpTBi5+xrGBbfM5+CFGN5Xr+ipoG9IkJN/+uvUx6+T1rG1oUR3h6dAsPyA8/EZEr2itol3d7Ag58d9VqGkcu8imPkMu5iz/L6YPWqhPIHHo3MntFm/vYuWMzsHZ/hdX7OLOyU2nhRiCvCGXw4kdsp2xcmUMNkSScuHgNc9Z+ab5QHsmQMOXm79Uy6dWmiSxfN1A//ERErshI6KraN+skYMU/DwEAp6dxYsOBURnxCA0NNb+OUt0ZpdFypa1anHleoPBo8FJbW4tnnnkGf//736HT6TBjxgz86U9/QrduyhUHa2tr8cILL+Dzzz9HVVUVEhMTMW3aNLz00kuIiYnxZFN9zql9hm4m6Q7pHYsTF67hlR1nrIoqyXttAKYLZcNZHRYabiAtIVTh1ZTfU96B2nLPjkD98BMRuYO8kEHuKx1N4xRX1uGn2eqLJSpqGpDXPxGbFubiSGUdRqbH2S2QUFpOPXNkWlBtmOvR4GXOnDnQ6/XYuXMnWltbMXfuXCxYsADr1q1TPP7SpUu4dOkSVq5ciUGDBuHcuXP45S9/iUuXLuFvf/ubJ5vqc87sM/Tao8Pw0+wUAEBuZg88NPRWRUal5wtIqKptRFpCd6ffU8CU49KjW+DXCSAickVFTYPijeXrs4fhwSEpVo8pTeMAwK8+LEFDy494eGiy1eO2o+CA8j5ytjedSjtfB0O/7bHg5fTp09ixYweOHDmCESNGAABef/11TJkyBStXrkRKSordc+68805s3LjR/HNmZiZ+//vf4+c//zl+/PFHdOkSuLNcah90WYgkISfdOvq2/ZDaFaqDQFq8+pSP2hwpk3OJKJjZTsnI1PpMuaioJfP2KxtLTQXlbpKDjdyMW89xNPJuG5wo3XQGcmKuGo8VqTt48CBiY2PNgQsAjB8/HjqdDocOHXL6dQwGA6KjowM6cAHsC81J0q3o25npG9vn6yRgZj8jkmMinH4Op4mIKNjJhedmrzmEMYW7seFIlfl3rvaZM0em4bXZw+webxMCVbW3Nkxsb+TdckGG0kaSwZib6LGIoLq6Gj179rR+sy5dEB8fj+pq9f1yLNXU1OCll17CggULVI9pbm5Gc3Oz+ef6+noApjonra2tHWi57zw8NBm5GXGmqZ6bIybyfyfHRLT791g+PyU6FKWH9rn0HPk99525jL49ohwGPnSLfI619nnTGp5n7wjm86w33LCvcLupFLkZceb+0LbPbK9vHpLS3W60RicBKdGhuArTee4TE+5w5F0nAb1jwtDa2oqEqC54eeog/G7rKXPOy0tTByIhqovm/81cab8khKN9g+3l5+djxYoVDo85ffo0Nm3ahPfffx9nzpyx+l3Pnj2xfPlyPPXUUw5fo76+Hg888ADi4+Px8ccfW2VjW3rxxRexfPlyu8fXrVuHqKjAjESvNQNXbkhIjBCIDW//eGcdvCxhw1kdBCRIEJjZz4jcXoFfZpqICAC+NUh445T9DtGLBrXh9hjn+kKl/tmZvtX2GNNv1Y/31PeALzU2NmL27NnmGRdHXA5erly5gqtXrzo8pl+/fvjf//1fPPvss6irqzM//uOPPyIiIgIfffQRpk+frvr8H374ARMnTkRUVBQ++eQTRESojwAojbykpqaipqam3T9eiz4qvmAVcb88dRB+ltPH7rjW1lbs3LkTDzzwgGrgZ0lvuIH7/rDX7u5gz7N5HIFph6vnmjqG59k7gvk8q/WDf10wCk0tbe2OSDvqn/WGG3ajNbbn+fgFA46eq8PwvnHo2T3c6vhgUF9fj4SEBKeCF5enjRITE5GYmNjucbm5ubh27RqKi4uRk5MDANi9ezeMRiNGjRql+rz6+npMnDgR4eHh+Pjjjx0GLgAQHh6O8HD7sDM0NDTgLjy9ocl8YQCmIcbntp7GuIFJqnOuzp6HCwaDYoG6i4YW1dVKZC0QP3P+iOfZO4LxPKclhNrVSpk2LAWPvH2o3f2C2uuf0xJCFftS+TyrLX8OJq583jyWsDtw4EBMmjQJ8+fPx+HDh3HgwAEsWrQIjz76qHml0cWLF5GVlYXDhw8DMAUuEyZMQENDA9555x3U19ejuroa1dXVaGtr81RTNcNRlnlnuZIEpjc02e1sTUQUCGaOTMP+/HFYP/9ubFqYi80lF+12ef7kxCW7/q8z/bPa8mf2seo8uoTngw8+wKJFi3D//febi9S99tpr5t+3trbizJkzaGw0/eMePXrUvBLptttus3qtiooKpKene7K5fkFtiR7g2fLPzlZn5N0BEQU6R/sFGQEsWldi1/91pn/m8mfXeTR4iY+PVy1IBwDp6emwTLm577774GIKTkBpLzBwR/lnR8GRM3sgOSqOREQUSBzV31IqDtfR/jnY9iVyh8AunqIhzgYGnSn/7MyoiaPqjLw7IKJgYhuQ2LLt/zraPwfbvkTuwODFT7gSGHSk/LM7Rk14d0BEwUYOSIor6/CrD0va7f86Wp4/mPYlcgePJeySazxdNdEdyb6syEtEwSg5JhI/zU7xeP+XHBNp3quOybqOceTFT3h62NBdoya8OyCiYOWO/k/OO+wTY1/igwsinMfgxU0cJcI6y5OBgTuDo2DZtZSIyFZn+j/b4OSRDAlTbv6OCyJcw+DFDdwZLXsyMOCoCRGRbygFJxvO6rDQcANpCaFcEOEi5rx0ktaKCyXHRCI3swcvBiIiL1IKTgQk8+7S3C3aNQxeOsmTVW+JiCgwKAUnEgTS4m8FJ/PGZpiP4YIIxzht1ElcPkxERO2xzTs05bwYkRwTYZV6IAFYkJeBuWMyGLg4wJGXTuLyYSIicoblvkl7ns1Dbi8BveGGVeqBAPDOvkpfNlMTOPLiBkyEJSIiZ8iLMlpbW1EC4NzVRibqdgCDFzfh8mEiInJV3x5RTD3oAE4bERER+UhyTARTDzqAIy9EREQ+xNQD1zF4CSLuqAJMRETux9QD1zB4CRLcM4OIiAIFc16CgNaqABMRETnC4CUIsAowEREFEgYvQYB7ZhARUSBh8BIEWAWYiIgCCRN2gwSX4hERUaBg8BJEuBSPiIgCAaeNiIiISFMYvAQAvaEJReU1XPpMRERBgdNGGsfic0REFGw48qJhLD5HRETBiMGLhrH4HBERBSMGLxrG4nNERBSMGLxoGIvPERFRMGLCrsax+BwREQUbBi8BgMXniIgomHDaSONY44WIiIINR140jDVeiIgoGHHkRaNY44WIiIIVgxeNYo0XIiIKVgxeNIo1XoiIKFgxeNEo1nghIqJgxYRdDWONFyIiCkYMXjSONV6IiCjYcNqIiIiINIXBCxEREWkKgxciIiLSFAYvREREpCkMXoiIiEhTGLwQERGRpjB4ISIi0hC9oQlF5TVBvZcd67wQERFpxIYjVeZNeXUSUPDwYMwcmebrZnkdR16IiIg0QG9oMgcuAGAUwG83fR2UIzAMXoiIiDSgoqbBHLjI2oRAZU2jbxrkQx4NXmprazFnzhxER0cjNjYW8+bNw/Xr1x0+58knn0RmZiYiIyORmJiIqVOnoqyszJPNJCIi8nsZCV2hk6wfC5EkpCdE+aZBPuTR4GXOnDk4efIkdu7ciU8++QR79+7FggULHD4nJycH7733Hk6fPo3PPvsMQghMmDABbW1tnmwqERGRX0uOiUTBw4MRIpkimBBJwn89fGdQ7m/nsYTd06dPY8eOHThy5AhGjBgBAHj99dcxZcoUrFy5EikpKYrPswxu0tPT8fLLLyM7OxuVlZXIzMz0VHOJiIj83syRacjrn4jKmkakJ0QFZeACeDB4OXjwIGJjY82BCwCMHz8eOp0Ohw4dwvTp09t9jYaGBrz33nvIyMhAamqq4jHNzc1obm42/1xfXw8AaG1tRWtrayf/Cu2S//ZgPgfewnPtHTzP3sHz7B2dOc8JUV2QkBbd4ef7K1f+Fo8FL9XV1ejZs6f1m3Xpgvj4eFRXVzt87urVq7FkyRI0NDRgwIAB2LlzJ8LCwhSPLSgowPLly+0e//zzzxEVFXzzgLZ27tzp6yYEDZ5r7+B59g6eZ+/geb6lsdH5xGOXg5f8/HysWLHC4TGnT5929WWtzJkzBw888AD0ej1WrlyJRx55BAcOHEBERITdscuWLcPixYvNP9fX1yM1NRUTJkxAdHR0p9qhZa2trdi5cyceeOABhIaG+ro5AY3n2jt4nr2D59k7eJ7tyTMnznA5eHn22Wfxi1/8wuEx/fr1Q1JSEr7//nurx3/88UfU1tYiKSnJ4fNjYmIQExOD22+/HXfffTfi4uKwefNmzJo1y+7Y8PBwhIeH2z0eGhrKDwR4HryJ59o7eJ69g+fZO3ieb3HlPLgcvCQmJiIxMbHd43Jzc3Ht2jUUFxcjJycHALB7924YjUaMGjXK6fcTQkAIYZXXQkRERMHLY0ulBw4ciEmTJmH+/Pk4fPgwDhw4gEWLFuHRRx81rzS6ePEisrKycPjwYQDA2bNnUVBQgOLiYlRVVaGoqAg/+9nPEBkZiSlTpniqqURERKQhHq3z8sEHHyArKwv3338/pkyZgrFjx+Ltt982/761tRVnzpwxJ+lERERg3759mDJlCm677TbMnDkT3bt3R1FRkV3yLxEREQUnj27MGB8fj3Xr1qn+Pj09HULcqnWckpKCbdu2ebJJ1El6QxMqahqQkdA1aOsLEBGRb3FXaXIadzMlIiJ/wI0ZySnczZSIiPwFgxdyCnczJSIif8HghZzC3UyJiMhfMHghp3A3UyIi8hdM2CWncTdTIiLyBwxeyCXJMZEMWoiIyKc4bURERESawuCFiIiINIXBCxEREWkKgxciIiLSFAYvREREpCkMXoiIiEhTGLwQERGRpjB4ISIiIk1h8EJERESawuCFiIiINIXBCxEREWlKwO1tJIQAANTX1/u4Jb7V2tqKxsZG1NfXIzQ01NfNCWg8197B8+wdPM/ewfNsT/7elr/HHQm44OWHH34AAKSmpvq4JUREROSqH374ATExMQ6PkYQzIY6GGI1GXLp0Cd27d4ckSb5ujs/U19cjNTUV58+fR3R0tK+bE9B4rr2D59k7eJ69g+fZnhACP/zwA1JSUqDTOc5qCbiRF51Ohz59+vi6GX4jOjqaF4aX8Fx7B8+zd/A8ewfPs7X2RlxkTNglIiIiTWHwQkRERJrC4CVAhYeH44UXXkB4eLivmxLweK69g+fZO3ievYPnuXMCLmGXiIiIAhtHXoiIiEhTGLwQERGRpjB4ISIiIk1h8EJERESawuAlgPz+97/H6NGjERUVhdjYWKeeI4TA888/j+TkZERGRmL8+PH49ttvPdtQjautrcWcOXMQHR2N2NhYzJs3D9evX3f4nPvuuw+SJFn975e//KWXWqwdq1atQnp6OiIiIjBq1CgcPnzY4fEfffQRsrKyEBERgcGDB2Pbtm1eaqm2uXKe//znP9t9diMiIrzYWm3au3cv/umf/gkpKSmQJAlbtmxp9zl79uzB8OHDER4ejttuuw1//vOfPd5OrWLwEkBaWlrws5/9DE899ZTTz3nllVfw2muv4c0338ShQ4fQtWtXTJw4ETdu3PBgS7Vtzpw5OHnyJHbu3IlPPvkEe/fuxYIFC9p93vz586HX683/e+WVV7zQWu3YsGEDFi9ejBdeeAFHjx5FdnY2Jk6ciO+//17x+KKiIsyaNQvz5s1DSUkJpk2bhmnTpuHrr7/2csu1xdXzDJiqwFp+ds+dO+fFFmtTQ0MDsrOzsWrVKqeOr6iowIMPPohx48bh2LFj+PWvf40nnngCn332mYdbqlGCAs57770nYmJi2j3OaDSKpKQk8d///d/mx65duybCw8PF+vXrPdhC7Tp16pQAII4cOWJ+bPv27UKSJHHx4kXV5917773i3/7t37zQQu266667xNNPP23+ua2tTaSkpIiCggLF4x955BHx4IMPWj02atQo8eSTT3q0nVrn6nl2tj8hdQDE5s2bHR6zZMkScccdd1g9NnPmTDFx4kQPtky7OPISxCoqKlBdXY3x48ebH4uJicGoUaNw8OBBH7bMfx08eBCxsbEYMWKE+bHx48dDp9Ph0KFDDp/7wQcfICEhAXfeeSeWLVuGxsZGTzdXM1paWlBcXGz1WdTpdBg/frzqZ/HgwYNWxwPAxIkT+dl1oCPnGQCuX7+Ovn37IjU1FVOnTsXJkye90dygws+zawJuY0ZyXnV1NQCgV69eVo/36tXL/DuyVl1djZ49e1o91qVLF8THxzs8Z7Nnz0bfvn2RkpKCEydOYOnSpThz5gw2bdrk6SZrQk1NDdra2hQ/i2VlZYrPqa6u5mfXRR05zwMGDMC7776LIUOGwGAwYOXKlRg9ejROnjzJTXDdSO3zXF9fj6amJkRGRvqoZf6JIy9+Lj8/3y5ZzvZ/ap0OOc/T53nBggWYOHEiBg8ejDlz5uAvf/kLNm/ejPLycjf+FUTul5ubi8ceewxDhw7Fvffei02bNiExMRFvvfWWr5tGQYwjL37u2WefxS9+8QuHx/Tr169Dr52UlAQAuHz5MpKTk82PX758GUOHDu3Qa2qVs+c5KSnJLrHxxx9/RG1trfl8OmPUqFEAgO+++w6ZmZkutzfQJCQkICQkBJcvX7Z6/PLly6rnNSkpyaXjqWPn2VZoaCiGDRuG7777zhNNDFpqn+fo6GiOuihg8OLnEhMTkZiY6JHXzsjIQFJSEnbt2mUOVurr63Ho0CGXViwFAmfPc25uLq5du4bi4mLk5OQAAHbv3g2j0WgOSJxx7NgxALAKGoNZWFgYcnJysGvXLkybNg0AYDQasWvXLixatEjxObm5udi1axd+/etfmx/buXMncnNzvdBiberIebbV1taG0tJSTJkyxYMtDT65ubl2S/35eXbA1xnD5D7nzp0TJSUlYvny5aJbt26ipKRElJSUiB9++MF8zIABA8SmTZvMPxcWForY2FixdetWceLECTF16lSRkZEhmpqafPEnaMKkSZPEsGHDxKFDh8T+/fvF7bffLmbNmmX+/YULF8SAAQPEoUOHhBBCfPfdd+I///M/xVdffSUqKirE1q1bRb9+/UReXp6v/gS/9OGHH4rw8HDx5z//WZw6dUosWLBAxMbGiurqaiGEEP/yL/8i8vPzzccfOHBAdOnSRaxcuVKcPn1avPDCCyI0NFSUlpb66k/QBFfP8/Lly8Vnn30mysvLRXFxsXj00UdFRESEOHnypK/+BE344YcfzH0wAPHHP/5RlJSUiHPnzgkhhMjPzxf/8i//Yj7+7NmzIioqSvzmN78Rp0+fFqtWrRIhISFix44dvvoT/BqDlwDy+OOPCwB2//viiy/MxwAQ7733nvlno9EonnvuOdGrVy8RHh4u7r//fnHmzBnvN15Drl69KmbNmiW6desmoqOjxdy5c60CxIqKCqvzXlVVJfLy8kR8fLwIDw8Xt912m/jNb34jDAaDj/4C//X666+LtLQ0ERYWJu666y7x5Zdfmn937733iscff9zq+L/+9a+if//+IiwsTNxxxx3i008/9XKLtcmV8/zrX//afGyvXr3ElClTxNGjR33Qam354osvFPtj+dw+/vjj4t5777V7ztChQ0VYWJjo16+fVV9N1iQhhPDJkA8RERFRB3C1EREREWkKgxciIiLSFAYvREREpCkMXoiIiEhTGLwQERGRpjB4ISIiIk1h8EJERESawuCFiIiINIXBCxEREWkKgxciIiLSFAYvREREpCkMXoiIiEhT/n+Mb5LMXGnP6QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "samples = np.fromfile('bpsk_in_noise.iq', np.complex64) # Read in file.  We have to tell it what format it is\n",
    "print(samples)\n",
    "\n",
    "# Plot constellation to make sure it looks right\n",
    "plt.plot(np.real(samples), np.imag(samples), '.')\n",
    "plt.grid(True)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you ever find yourself dealing with int16’s (a.k.a. short ints), or any other datatype that numpy doesn’t have a complex equivalent for, you will be forced to read the samples in as real, even if they are actually complex. The trick is to read them as real, but then interleave them back into the IQIQIQ… format yourself, a couple different ways of doing this are shown below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "samples = np.fromfile('iq_samples_as_int16.iq', np.int16).astype(np.float32).view(np.complex64)\n",
    "#  OR\n",
    "samples = np.fromfile('iq_samples_as_int16.iq', np.int16)\n",
    "samples = samples / 32768 # convert to -1 to +1 (optional)\n",
    "samples = samples[::2] + 1j*samples[1::2] # convert to IQIQIQ..."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.6"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
